// pages/chatRoom/index.js
import {
  getUserInfo
} from '../../api/user'
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    loadingSocket: true,
    message: "",
    list: [],
    userInfo: null,
    dataPostid:null
  },
  upload(){
    // 从本地相册选择图片或使用相机拍照。
    wx.chooseImage({
      success: (res)=> {
        const tempFilePaths = res.tempFilePaths
        console.log(tempFilePaths);
    
        wx.uploadFile({

          url: 'https://showme.myhope365.com/api/nos/upload/image',
          filePath: tempFilePaths[0],
          name: 'file',
          formData: {
            'fileUseForEnum': 'DEFAULT'
          },
          header: {
            "cookie":wx.getStorageSync('cookie')||""
        },
          success: res=>{
            console.log(res.data);
            
      const imgUrl=JSON.parse(res.data)
            console.log(JSON.parse(res.data));
            const dataM = {

              from: this.username, // 发送人，当前用户的用户名
        
              createTime: new Date().getTime(), // 发送时间
        
              cmd: 11, // 命令固定内容
        
              group_id: this.courseid, // 分组id。  想要发送到哪个组里
        
              chatType: 1, //  聊天类型 固定内容
        
              msgType: 0, // 消息类型 固定内容
        
              content: imgUrl.url, // 消息内容，自己设计结构，比如你想发送图片（图片上传的接口）
        
              nickName: this.nickname, // 用户昵称
        
              avatar: this.avatar, // 用户头像
        
              type: "2" // 消息类型。 你可以自己设计，发送过去是什么，返回的就是什么（1: 普通文本 2: 图片 3：点赞 4， 送花）
        
            }
        
        
            wx.sendSocketMessage({
              data: JSON.stringify(dataM),
            })


          }
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */



  // 建立网络请求链接
  onLoad: function (options) {
    console.log(options);
    this.data.dataPostid =options.postsid
    console.log(this.data.dataPostid);
        

    // 获取用户信息
    app.globalData.loginPromise.then(() => {
      if (app.globalData.isLogin) {
        console.log("此时是登录状态");

        this.setData({
          userInfo: app.globalData.user
        })
        console.log(this.data.userInfo);



        this.username = this.data.userInfo.userName
        this.password = "123456"
        this.courseid = "web07" + this.data.dataPostid
        this.nickname = this.data.userInfo.loginName
        this.avatar = this.data.userInfo.avatar


        // 网址
        const url = `wss://showme.myhope365.com/websocketChat?username=${this.username}&password=${this.password}&courseId=${this.courseid}&nickName=${this.nickname}&avatar=${this.avatar}`

        wx.connectSocket({
          url
        })

        wx.onSocketOpen((result) => {
          console.log("链接打开了")

          this.getHistory()
        })

        wx.onSocketMessage((result) => {
          // 监听 WebSocket 接受到服务器的消息事件
          console.log(result);
          const mm = JSON.parse(result.data)
          if (mm.command == 11) {
            this.data.list.push(mm.data)
          } else if (mm.command === 20 && mm.code === 10018) {
            console.log(mm.data.groups[this.courseid]);

            this.data.list = this.data.list.concat(mm.data.groups[this.courseid])


          }

          this.setData({
            list: this.data.list
          })
          console.log(this.data.list);

        })





      } else {
        console.log('未登录');

        wx.redirectTo({
          url: '/pages/loginin/loginin',
        })
      }
    })




  },


  sendMessage() {
    console.log(this.data.message);

    const dataM = {

      from: this.username, // 发送人，当前用户的用户名

      createTime: new Date().getTime(), // 发送时间

      cmd: 11, // 命令固定内容

      group_id: this.courseid, // 分组id。  想要发送到哪个组里

      chatType: 1, //  聊天类型 固定内容

      msgType: 0, // 消息类型 固定内容

      content: this.data.message, // 消息内容，自己设计结构，比如你想发送图片（图片上传的接口）

      nickName: this.nickname, // 用户昵称

      avatar: this.avatar, // 用户头像

      type: "1" // 消息类型。 你可以自己设计，发送过去是什么，返回的就是什么（1: 普通文本 2: 图片 3：点赞 4， 送花）

    }


    wx.sendSocketMessage({
      data: JSON.stringify(dataM),
    })

    this.setData({
      message: ""
    })
  },


  // 获取历史信息
  getHistory() {
    const history = {
      cmd: 19, // 命令 

      type: 1, // 类型 固定值

      groupId: this.courseid, //  分组的id

      userId: this.username // 用户id（这里可以用loginName）
    }


    wx.sendSocketMessage({
      data: JSON.stringify(history),
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    wx.closeSocket({
      code:1000
    })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})